<template>
  <el-tooltip
    ref="tlp"
    :content="text"
    effect="dark"
    :disabled="!tooltipFlag"
    :placement="placement"
    class="tooltip"
  >
    <div
      class="tooltip-wrap"
      @mouseenter="handleTooltipIn($event)"
      @mouseleave="handleTooltipOut($event)"
    >
      {{ text }}
    </div>
  </el-tooltip>
</template>
<script>
export default {
  name: 'EllipsisTooltip',
  props: {
    // 字符内容
    text: {
      type: String,
      default: '',
    },
    // tooltip显示位置
    placement: {
      type: String,
      default: 'top-start',
    },
  },
  data() {
    return {
      tooltipFlag: false, // 是否显示tooltip
    }
  },
  methods: {
    handleTooltipIn(event) {
      this.tooltipFlag = event.target.scrollWidth > event.target.offsetWidth
    },
    handleTooltipOut() {
      this.tooltipFlag = false
    },
  },
}
</script>
<style lang="scss" scoped>
.tooltip-wrap {
  width: 100%;
  /*文本不换行*/
  white-space: nowrap;
  overflow: hidden;
  /*文字超出用省略号*/
  text-overflow: ellipsis;
}
</style>
